
// async函数返回值不添加await关键字时就是同步函数

function request(url) {
    return new Promise((res, rej) => {
        setTimeout(() => {
            res(url)
        }, 1000)
    })
}
async function getDataAsync() {
    try {
        const a = await request('aaa')
        const b = await request(a + 'bbb')
        const c = await request(b + 'ccc')
        console.log(c);
    } catch (error) {
        console.log(error);
    }
    return Promise.resolve(222)
}

// async函数返回值
// 一个 Promise，这个 promise 要么会通过一个由 async 函数返回的值被解决，
// 要么会通过一个从 async 函数中抛出的（或其中没有被捕获到的）异常被拒绝。
async function bar() {
    console.log(111);
    getDataAsync().then(res => {
        console.log('res ' + res);
    }).catch(err => {
        console.log('err ' + err);
    })
    await getDataAsync()
    const r1 = await 444
    console.log(r1);
    console.log(222);
}
bar()